package array

// Fill 使用 value 值来填充（替换） array，从start位置开始, 到end位置结束（但不包含end位置）。 这个方法会改变 array（注：不是创建新数组）。
func Fill(array *[]T, value T, startEnd ...int) []T {
	var start = 0
	var end = len(*array)
	if len(startEnd) > 0 {
		start = startEnd[0]
	}
	if len(startEnd) > 1 {
		end = startEnd[1]
	}
	if start < 0 {
		start = 0
	}
	if end < start {
		end = start
	}
	if end > len(*array) {
		end = len(*array)
	}
	for i := start; i < end; i++ {
		(*array)[i] = value
	}
	return *array
}
